#pragma once

#include <QString>
#include <QStringList>

class Project
{
public:
    inline static const QString ProjectFileSuffixName = ".mypro";
    inline static const QString TableFolderName = "Tables";

    Project(const QString &dirPath = QString(), const QString &name = QString());

    bool isValid();

    QString dirPath() const;
    void setDirPath(const QString &newDirPath);

    bool create();
    bool load(const QString &configFilePath);
    QString name() const;
    void setName(const QString &newName);

    QString configFileName();
    QString tableDirPath();

    QString configDirPath() const;
    void setConfigDirPath(const QString &newConfigDirPath);

    QString projectName() const;
    void setProjectName(const QString &newProjectName);

    void addTableName(const QString &newTableName);

private:
    QString m_dirPath;
    QString m_name;
    QString m_configDirPath;
    QString m_projectName;
    QStringList m_tableFileNames;
};
